package com.big.codegen.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.big.common.mybatis.base.domain.entity.FlagBaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 代码生成表配置实体
 *
 * @author 山归岿
 * @create 2025-01-03
 */
@Data
@TableName("codegen_table_config")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "代码生成表配置实体")
public class CodegenTableConfig extends FlagBaseEntity {

    /**
     * 数据源ID
     */
    @Schema(description = "数据源ID")
    @TableField("datasource_id")
    private String datasourceId;

    /**
     * 表名
     */
    @Schema(description = "表名")
    @TableField("table_name")
    private String tableName;

    /**
     * 表注释
     */
    @Schema(description = "表注释")
    @TableField("table_comment")
    private String tableComment;

    /**
     * 实体类名
     */
    @Schema(description = "实体类名")
    @TableField("entity_name")
    private String entityName;

    /**
     * 包名
     */
    @Schema(description = "包名")
    @TableField("package_name")
    private String packageName;

    /**
     * 生成路径
     */
    @Schema(description = "生成路径")
    @TableField("generate_path")
    private String generatePath;

    /**
     * 作者
     */
    @Schema(description = "作者")
    private String author;

    /**
     * 表字段配置JSON
     */
    @Schema(description = "表字段配置JSON")
    @TableField("columns_config")
    private String columnsConfig;

    /**
     * 生成选项JSON
     */
    @Schema(description = "生成选项JSON")
    @TableField("generate_options")
    private String generateOptions;

    /**
     * 状态：0-草稿，1-已保存
     */
    @Schema(description = "状态：0-草稿，1-已保存")
    private Integer status;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;
}